#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
简单测试base_dir属性
"""

import sys
import os

# 添加项目根目录到路径
project_root = os.path.dirname(os.path.abspath(__file__))
sys.path.insert(0, project_root)

def test_base_dir_attribute():
    """测试base_dir属性是否存在"""
    print("🔧 简单测试base_dir属性")
    print("=" * 60)
    
    # 读取LotteryPredictorApp类的源代码
    with open('lottery_predictor_app.py', 'r', encoding='utf-8') as f:
        content = f.read()
    
    # 检查__init__方法中是否添加了base_dir属性
    if 'self.base_dir = os.path.dirname(os.path.abspath(__file__))' in content:
        print(" 在LotteryPredictorApp.__init__方法中找到了base_dir属性定义")
        
        # 获取当前目录作为期望的base_dir值
        expected_base_dir = os.path.dirname(os.path.abspath(__file__))
        print(f"✅ 期望的base_dir值: {expected_base_dir}")
        return True
    else:
        print(" 未在LotteryPredictorApp.__init__方法中找到base_dir属性定义")
        return False

def test_get_enhanced_lstm_predictions():
    """测试get_enhanced_lstm_predictions方法中base_dir的使用"""
    print("\n🔍 测试get_enhanced_lstm_predictions方法中base_dir的使用")
    print("=" * 60)
    
    # 读取LotteryPredictorApp类的源代码
    with open('lottery_predictor_app.py', 'r', encoding='utf-8') as f:
        content = f.read()
    
    # 检查get_enhanced_lstm_predictions方法中是否使用了self.base_dir
    if 'self.base_dir' in content and 'get_enhanced_lstm_predictions' in content:
        # 查找具体的使用位置
        lines = content.split('\n')
        for i, line in enumerate(lines):
            if 'get_enhanced_lstm_predictions' in line and 'def ' in line:
                print(f"✅ 找到get_enhanced_lstm_predictions方法定义在第{i+1}行")
                
                # 查找方法内部使用self.base_dir的位置
                method_started = False
                for j in range(i, min(i+100, len(lines))):  # 限制搜索范围
                    if 'def ' in lines[j] and j > i:
                        break  # 遇到下一个方法定义就停止
                    if 'self.base_dir' in lines[j]:
                        print(f"✅ 在第{j+1}行找到self.base_dir的使用: {lines[j].strip()}")
                        return True
                break
    
    print(" 未找到get_enhanced_lstm_predictions方法中self.base_dir的使用")
    return False

if __name__ == "__main__":
    success1 = test_base_dir_attribute()
    success2 = test_get_enhanced_lstm_predictions()
    
    if success1 and success2:
        print("\n🎉 base_dir属性修复验证通过!")
        sys.exit(0)
    else:
        print("\n💥 base_dir属性修复验证失败!")
        sys.exit(1)